export {}
//5 如果有其它修饰符，readonly要写在后面
class Person {
    public name: string
    private age: number // = 18 //可以初始化一个值，也可以在 constructor中通过参数来赋值；
    protected readonly gender: boolean
    constructor(name: string, age: number) {
        this.name = name //在constructor中使用this来添加属性，会有语法 错误，要在class中，添加属性；
        this.age = age
        this.gender = true
    }

    sayHi(msg: string): void {
        console.log(`i am ${this.name}, ${msg}`)
        console.log(this.age)
        console.log(this.gender)  //Person类中可以访问
    }

}
// 实例对象 
const tom = new Person('tom', 12)
// console.log(tom.name)
// tom.gender = false //因为只读这个会报语法 错误,不能被修改